●zmc3ってなに?
  Z-MUSIC(V3)対応の、ZMS→ZMDコンパイラです。Z-MUSICをご存じでない
 方のために説明すると、Z-MUSICとは西川善司氏によって作成されたMML系の
 X680x0用内蔵音源/MIDI音源制御ツールであり、ZMSファイルというのはMMLを
 記述するテキストファイルのことで、ZMDファイルとはZMSファイルをZ-MUSICの
 内部形式に変換したものです。
  X680x0上(zmc3.x), Windows95/NT4のDOS窓の中(zmc3.exe), Linux,FreeBSD,
 SunOS4.1.x, Solaris(UltraSPARC) での動作確認がなされており、これを
 用いてZ-MUSICのMIDI音源制御部分相当のMMLを利用できます。
  これとz2m3(拙作,ZMD→MIDコンバータ)を併用することで、X680x0以外の
 環境での、Z-MUSICによる最低限の音楽データ作成が実現出来ます。
 エディタやプレーヤなど、環境の肉付けは各自で自由にしてみて下さい。
 Windowsな方にはMASAさん(http://www.asahi-net.or.jp/‾aa4m-shr/)に
 よるZEDITが、Mule使いな方には我孫子さん
 (http://www.ddna.is.tsukuba.ac.jp/‾wabi/)によるzmusic-mode.el が
 便利でしょう。


●使用法
  zmc3 [各種スイッチ] [入力ファイル[.zms]] [-o 出力ファイル[.zmd]]
 というスタイルで用います。[..]内は省略出来ます。

  通常の使い方としては、
   1. sample.zms を用意しておいて、
   2. zmc2 sample とすれば、
   3. sample.zmd が作成出来ます。


  以下スイッチの説明です。複数のスイッチを同時に指定する場合には
 -w2 -c とバラで指定しても、-w2c とまとめて指定しても構いません。

   -Wnum       zms→zmd変換時に表示される警告(warning)レベルを
           指定します。

            -w1   警告は一切表示しません(エラーのみ表示)。
            -w2   Z-MUSIC V2レベルの警告を表示します。
               (zmc3では意味なしのような気もします)
            -w3   -w2 の内容に加えて、Z-MUSIC V3レベルの
               警告を表示します。
                例えば、c<& というMMLは、-w3(か-w4)な時
               のみ警告を表示します。
            -w4   -w3 の内容に加えて、zmc3で新たに拡張された
               MMLを使用すると警告を表示します。

            指定する数字が大きくなるほど、より細かい警告が
           表示されるようになります。
            デフォルトでは -w3 が指定されています。(デフォルト
           値はmakefileでコンパイル時に指定可能)

   -o ファイル名   出力ファイル(zmd)の名前を指定します。この指定を
           省略すると、入力ファイルの拡張子をzmdに変更した物を
           用います。なお、指定法は -o ファイル名 と -oファイル名、
           どちらでも構いません。

            例
              zmc3 sample -o sample2.zmd
             → sample.zmsを変換して sample2.zmdを出力します。

   -e ファイル名   エラー表示をファイルにリダイレクトします。他のシステム
           からzmc3を利用する場合に便利です。

   -  -c       - を指定すると、入力ファイルの代わりに標準入力を
           用います。-c を指定すると、出力に標準出力を用います。

            例
             cat sample.zms | zmc3 - -o sample.zmd
             cat sample.zms | zmc3 - -c | z2m3 - -c > sample.mid

   -l        warning/errorの出力フォーマットを変更します。指定が
           ないと行数のみ表示しますが、指定があると行数と項数
           (列?)も表示します。

            例
             -l未指定時
              test.zms        26: Error: SYNTAX ERROR.
              "c4eg,,,64",12
                     ^
             -l指定時
              test.zms        L26C8: Error: SYNTAX ERROR.
              "c4eg,,,64",12
                     ^
   -h        ヘルプメッセージを表示します。引数なしで zmc3を
           起動しても同じです。


●実装済MML
  そのうち書きます。試してみてエラーになるようなら使えないと
 思ってください(^_^;


●内蔵音源サポートについて
  コンパイルは通るかも知れませんが、多分動作しません。。。


●制限
 ・連符中にループ、ジャンプ系の命令([coda]とか)を使えない

●MMLの拡張
  zmc3では、Z-MUSICで規定されているzmsフォーマットに加えて便利な
 独自の拡張をいくつかサポートしています。詳しくはzmc3ext.txt
 をご覧下さい。


●配布制限
  一切ありません。いわゆるPDSとして見なして頂いて構いません。
 配布、改変、商的利用その他すべて私への断りなしで勝手に行って頂いて
 結構です。


●謝辞
  ・初期バージョンからデバッグに協力していただいた おいもさん
  ・SunOS4.1.x, FreeBSDでの動作確認をしていただき、
   各種差分を提供して頂いた 田中さん
  ・Solaris(UltraSPARC), Linuxでの動作確認をしていただき、各種
   差分を提供していただき、バグ報告や機能提案を頂いた 我孫子さん
  ・当方で再現出来ないエラーのデバッグに協力して下さった 内海さん
  ・バグ報告並びに各種XG関連機能提案をいただいた muteさん
  ・FM-TOWNSでの動作確認をしていただき、バグ報告ならびに内蔵音源
   部などの実装をしていただいたMamiyaさん

  どうもありがとうございます。

--
やぎ。

    E-mail: yyagi@muc.biglobe.ne.jp            (ほぼ毎日確認)
       web: http://www2s.biglobe.ne.jp/‾yyagi/